package com.kj.tms.system.service.menu.dao;

import com.kj.tms.common.bean.dao.BaseMapper;
import com.kj.tms.pri.system.menu.dto.ModuleDto;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <p>项目名称：system<p>
 * <p>类名称：ModuleMapper<p>
 * <p>类描述：模块菜单Mapper<p>
 * @author 创建人：yangruidong
 * @author 创建时间： 2017年10月18日 9:41
 * @author 修改人：yangruidong
 * @author 修改时间：2017年10月18日 9:41
 * @author 修改备注：
 * @version: 2017年10月18日
 */
@Repository
public interface ModuleMapper extends BaseMapper<ModuleDto> {
     /**
      * 查询模块列表信息
      * @param moduleDto
      * @return
      */
     List<ModuleDto> listByCondition(ModuleDto moduleDto);


     /**
      * 查询菜单模块列表信息树
      * @param moduleDto
      * @return
      */
     List<ModuleDto> listTreeByCondition(ModuleDto moduleDto);
     /**
      * 获取List<ModuleDto> 
      * @param map
      * @return
      */
     List<ModuleDto> listByConditionMap(Map map);
     
     /**
      * 保存 更新数据
      * @param moduleDto
      */
     void saveOrUpdate(ModuleDto moduleDto);
     
     /**
      * 获取sequence
      * @param sequence
      * @return
      */
     long  getSequence(@Param("sequence") String sequence);

     /**
      * 获取List<listForValid>
      * @param map
      * @return
      */
     List<ModuleDto> listForValid(Map map);
     /**
      * 获取单个module
      * @param map
      * @return
      */
     ModuleDto getModuleDto(Map map);

     /**
      * 通过moduleCode获取单个module
      * @param menuId
      * @return
      */
     ModuleDto getModuleDtoById(@Param("menuId") String menuId);

     /**
      *
      * @Title: queryMenuByRole
      * @Description: 查询角色的权限
      * @param map
      * @return List<MenuDto> 返回类型
      * @throws
      */
     List<ModuleDto> queryMenuByUserOrg(Map map);
     /**
      * 根据角色查询可用的菜单信息
      * @param roleId
      * @return
      */
     List<ModuleDto> queryMenuByRoleId(@Param("roleId") String roleId);
}
